﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Negocio.clases_tontas;
using Datos;

namespace Negocio.catalogos
{
    public class catalogoPeriodo
    {
        ControlAsistenciaEntities _objConexion = new ControlAsistenciaEntities();
        public List<periodo> obtenerPeriodo(int _idPeriodo)
        { 
            List<periodo> _objListPeriodo = new List<periodo>();
            servicioCarrera.CarreraServiceSoapClient _objServicioPeriodo = new servicioCarrera.CarreraServiceSoapClient();

            foreach (var item in _objServicioPeriodo.PeriodosLectivos(_idPeriodo))
            {
                _objListPeriodo.Add(new periodo(item.Cod_Periodo,item.Fecha_Inicio,item.Fecha_Fin,item.Nombre));
            }            
            return _objListPeriodo;
        }
        public List<periodo> obtenerPeriodoTodos()
        {
            List<periodo> _objListPeriodo = new List<periodo>();
            servicioCarrera.CarreraServiceSoapClient _objServicioPeriodo = new servicioCarrera.CarreraServiceSoapClient();

            foreach (var item in _objServicioPeriodo.ObtenerPeriodosLectivos())
            {
                _objListPeriodo.Add(new periodo(item.Cod_Periodo, item.Fecha_Inicio, item.Fecha_Fin, item.Nombre));
            }
            return _objListPeriodo;
        }
        public List<periodo> obtenerPeriodoXDistribucion(int _idDistribucion)
        {
            List<periodo> _objListPeriodo = new List<periodo>();

            foreach (var item in _objConexion.procConsultarHorarioxIdDistribucion(_idDistribucion).GroupBy(C => C.idPeriodo).Select(F => F.First()))
            {
                _objListPeriodo.Add(new catalogoPeriodo().obtenerPeriodo((int)item.idPeriodo).First());
            }
            return _objListPeriodo;
        }
        public List<periodo> obtenerPeriodoxTOP()
        {
            List<periodo> _objListPeriodo = new List<periodo>();
            
            foreach (var item in _objConexion.procConsultarPeriodoXTOP())
            {
                _objListPeriodo.Add(new periodo(item.Cod_Periodo, item.Fecha_Inicio, item.Fecha_Fin, item.Nombre));
            }
            return _objListPeriodo;
        }
    }
}
